﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using UpYourLife.Services.Models;
using UpYourLife.Services.Google;

namespace UpYourLife.Services
{
    [ServiceContract]
    interface IUpYourLifeServices
    {
        /// <summary>
        /// Place
        /// </summary>
        /// <param name="place_id"></param>
        /// <returns></returns>
        [OperationContract]
        Place GetPlace(Guid place_id);

        [OperationContract]
        List<Place> GetPlaces();        

        [OperationContract(Name= "GetPlacesByType")]
        List<Place> GetPlaces(string type);

        [OperationContract(Name = "GetPlacesByTypes")]
        List<Place> GetPlaces(string[] types);

        /// <summary>
        /// Friend
        /// </summary>
        /// <param name="friend_id"></param>
        /// <returns></returns>

        [OperationContract(Name = "GetFriendByID")]
        Friend GetFriend(Guid friend_id);

        [OperationContract(Name= "GetFriendByName")]
        Friend GetFriend(string friend_name);

        [OperationContract(Name= "GetFriendsByGroup")]
        List<Friend> GetFriends(Guid group_id);

        [OperationContract(Name = "GetFriends")]
        List<Friend> GetFriends();

        [OperationContract]
        GoogleLocalResponseData GetGoogleLocalResponseData(string keyword);

        /// <summary>
        /// Message
        /// </summary>
        /// <param name="friend_id"></param>
        /// <returns></returns>

        [OperationContract]
        void CreateMessage(UpMessage upMessage);
    }
}
